home *** CD-ROM | disk | FTP | other *** search
/ Light ROM 1 / LIGHT-ROM 1 (Amiga Library Services)(1994).iso / ffdisks / d953.lha / ISAM / ISAMChanges.doc < prev    next >
Text File  |  1993-11-28  |  6KB  |  116 lines

  1.  
  2.                          CHANGES TO ISAM SINCE 1.00
  3.                          --------------------------
  4.  
  5. 1.01
  6. ----
  7.  
  8. The Link Library was replaced with a Resident Library, and the support
  9. and example programs were modified to use the new library.
  10. Calls to OpenLibrary()/CloseLibrary() need to be added to your code.
  11. A file of #pragma statements and an .fd (function description) file have
  12. been added.  The C prototype files have had an #include statement added to
  13. pull in the #pragma file.  For those that cannot use #pragma statements or
  14. or whose compiler cannot handle #pragma's for functions of more than four (4)
  15. parameters, a link library of stub functions is also provided.
  16.  
  17. Previously, in order to make sure that files/records were unlocked/closed/
  18. etc. an exit trap was in place that called DisConnectISAM upon program
  19. exit.  This has been removed.  DisConnectISAM will now be called auto-
  20. matically when CloseLibrary is called.  DisConnectISAM is no longer
  21. user-callable, and has been removed from the AutoDocs.  The error message
  22. referring to the exit trap should be considered obsolete, and will not be
  23. returned by any function.
  24.   
  25. The "Maximum Different Simultaneously Open ISAM Files" figure, which was
  26. defaulted to 50, but which was user-configurable, has been removed.
  27. Our compiler handles open files diffently now (linked list vs. static
  28. array).  (There still IS a maximum, but it's in the billions, so don't
  29. worry about it.).  Because of this, the instructions for locating/changing
  30. the "MAXFILES=" Workbench ToolType have been removed, as has the ToolType 
  31. itself.
  32. From the CLI/Shell, the <maxfiles> parameter has been removed, leaving
  33. <quiet> the only parameter.
  34.  
  35. After being recompiled with our language upgrade, the server seems to be
  36. about 10K smaller.  Also, utilizing the Resident Library, the main support
  37. programs are about 1/2 of their former size, since they consist mostly of
  38. ISAM calls.
  39.  
  40. A bug has been fixed at the point where the server determined whether a file
  41. was open already by comparing the name of the data file being opened with the
  42. names of currently open files.  The comparison is now case-insensitive.
  43. This would only have been a problem if two programs used two different specs
  44. files to refer to the same ISAM file (which is unlikely, not to mention unwise,
  45. anyway) and the data file names were not identically cased.
  46.  
  47.  
  48. 1.02
  49. ----
  50.  
  51. The ISAM resident library was modified to work in the case that the user
  52. opened the library twice from the same program.
  53.  
  54. Example: the user has a link-library function, that handles ISAM error
  55. messages, that calls ISAMWhy.  This makes opening the library necessary
  56. for the function.  Any main program that uses ISAM would, of course,
  57. also open the library.  This caused a problem with the automatic closing
  58. of files, which occurs when CloseLibrary is called.  In this case, when
  59. the error-handling function exited, the files were closed, even when the
  60. main program had not called its closedown function.
  61.  
  62. The count of OpenLibrary/CloseLibrary calls is now kept for each user, and
  63. the auto-close feature is only activated at the last CloseLibrary.
  64.  
  65.  
  66. 1.03
  67. ----
  68.  
  69. A new function, GetFirstLastISAMKeyValues, has been added.  Given an ISAM
  70. Handle and a Key Number, this function will return the first and last
  71. key values for that key.  Whether first is greater or less than last is,
  72. of course, dependent on whether the key is an ascending or descending key.
  73. The record numbers of the records having the first and last key values will
  74. also be returned.
  75. This function has been added to the end of the library, so that no re-
  76. compilation is necessary for programs that used a previous library version.
  77.  
  78. ISAM is now usable from ARexx.  A new function library, rexxisam.library,
  79. has been added (the main library, isam.library, is still necessary, as
  80. rexxisam.library opens it).  All ISAM functions may be called from ARexx,
  81. as well as two ARexx-only functions that help in making/using records.
  82. For complete details, see the file RexxISAM.doc.
  83.  
  84. If the ReportISAMStatus Command is run from the CLI/Shell, it now types the
  85. report file (RAM:ISAMStatus) to the  CLI/Shell after the file is created
  86. (thus it is no longer necessary to "Type RAM:ISAMStatus" after calling
  87. ReportISAMStatus in order to actually see the report).  This is done only
  88. if Report... is run from the CLI/shell.  The ReportISAMStatus function is
  89. unchanged - only the command has changed.
  90.  
  91. ReIndexISAMFile's Counter Window has been enlarged slightly, and a message
  92. indicating completion is now displayed at the end of the ReIndexing.  The
  93. highest count remains visible for 5 seconds, as before.
  94.  
  95. The CreateISAMFile function now complains if a key length is greater than the
  96. maximum possible size.
  97.  
  98. Two files useful for assembler programmers have been kindly provided by
  99. Koen Peetermans.  One (ISAM_Lib.i) gives the _LVO offsets for isam.library;
  100. the other (ISAMErrDefs.i) provides the error return EQU's.  He has used them
  101. with a non-SAS/Lattice assembler, but feels that little/no modification
  102. would be necessary with that or other assemblers.
  103. These files have been modified slightly to reflect the current version.
  104.  
  105.  
  106. [A user has reported a situation that we have been unable to duplicate: when
  107. storing the SECOND (2nd) record of a file, the error IERROR_NOT_DELETED_RECORD
  108. was returned.  Whether this occurred or not was apparently related to the
  109. record size.  Using the ISAM files that the user provided, we don't get any
  110. error no matter what the record size (in fact, we have never received that
  111. particular error message).  The user had this problem several times, but
  112. reports that in each case, after ReIndexing, all was well.  Since we don't get
  113. the error, perhaps it is a machine- or OS-specific problem.  I believe the
  114. user has an A4000; ISAM has been developed on an A1000/A3000-030/16.
  115. In any event, if you have this problem, just ReIndex the file.]
  116.